home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Graphics / Misc / Wood.0.72 / Sources / ScrollViewDeluxeForOOE.m < prev    next >
Encoding:
Text File  |  1995-08-29  |  2.6 KB  |  143 lines

  1.  
  2. #define OOE_BUTTON_WIDTH    16
  3. #define OOE_BUTTON_HEIGHT    16
  4.  
  5. #import "ScrollViewDeluxeForOOE.h"
  6. #import "wooddoc.h"
  7. #import "ooe_server.h"
  8.  
  9. @implementation View (OOE_GUI)
  10.  
  11. - ooeStatusChanged:sender
  12. {
  13.     [subviews makeObjectsPerform:_cmd with:sender];
  14.     return self;
  15. }
  16.  
  17. @end
  18.  
  19.  
  20. @interface ScrollViewOOEButton:Button
  21. @end
  22.  
  23. @implementation ScrollViewOOEButton
  24.  
  25. - initFrame: (const NXRect *)rect for:view
  26. {
  27.     [self initFrame: rect];
  28.     [self setAction: @selector(ooeSelected:)];
  29.     [self setTarget: view];
  30.     [self setBordered:NO];
  31.     [self setIconPosition:NX_ICONONLY];
  32.     [self setImage: [NXImage findImageNamed: "OOE_ScrollerButton"]];
  33.     [self setAltImage: [NXImage findImageNamed: "OOE_ScrollerButtonH"]];
  34.     [self setType: NX_MOMENTARYCHANGE];
  35.     [self setFrame: rect];    
  36.     [self setEnabled: NO];        
  37.     return self;
  38. }
  39.  
  40. - ooeStatusChanged:sender
  41. {
  42.     [self setEnabled: [sender isOOEServer]];
  43.     if(![self isEnabled])
  44.         [self setImage: [NXImage findImageNamed: "OOE_ScrollerButtonD"]];
  45.     else {
  46.         if([window isDocEdited])
  47.             [self setImage: [NXImage findImageNamed: 
  48.                         "OOE_ScrollerButtonE"]];
  49.         else 
  50.             [self setImage: [NXImage findImageNamed: 
  51.                         "OOE_ScrollerButton"]];
  52.     }
  53.     return self;
  54. }
  55.  
  56. @end
  57.  
  58. @implementation ScrollViewDeluxeForOOE
  59.  
  60. - theOOEButton
  61. {
  62.     return theOOEButton;
  63. }
  64.  
  65. - initFrame: (const NXRect *)rect
  66. {
  67.     NXRect ooeButtonRect 
  68.         = {0, 0, OOE_BUTTON_WIDTH, OOE_BUTTON_HEIGHT};
  69.     
  70.     [super initFrame:rect];
  71.     
  72.     // ooe button
  73.     
  74.     theOOEButton = [[ScrollViewOOEButton allocFromZone:[self zone]] 
  75.                     initFrame: &ooeButtonRect
  76.                     for:self];
  77.     [self addSubview: theOOEButton];
  78.     
  79.     [self setVertScrollerRequired:YES];
  80.     [self setHorizScrollerRequired:YES];
  81.     
  82.     [self addVertScrollerView:theOOEButton at:0];
  83.     
  84.     [self tile];
  85.     
  86.     return self;
  87. }
  88.  
  89. - ooeSelected:sender
  90. {
  91.     int altEvent;
  92.     id doc = [window delegate];
  93.     
  94.     altEvent = (([NXApp currentEvent]->flags & NX_ALTERNATEMASK) > 0 
  95.                     ? 1 : 0);
  96.     
  97.      if([window isDocEdited]){
  98.          [doc save:nil];
  99.      } else {
  100.         [doc orderClientDocumentFront:nil];
  101.     }
  102.     
  103.     if(!altEvent && ![window isDocEdited])
  104.         [window performClose:nil];
  105.         
  106.     return self;
  107. }
  108.  
  109.  
  110. /*
  111. - tile
  112. {
  113.     NXRect vScrollRect;
  114.     NXRect ooeButtonRect;
  115.     
  116.     [super tile];
  117.  
  118.        [vScroller getFrame: &vScrollRect];
  119.      [theOOEButton getFrame: &ooeButtonRect];
  120.     
  121.     // vertical
  122.     
  123.     // ooe button
  124.     
  125.     NX_X(&ooeButtonRect) = NX_X(&vScrollRect)+1;
  126.     NX_Y(&ooeButtonRect) = NX_Y(&vScrollRect);
  127.  
  128.     [theOOEButton setFrame:&ooeButtonRect];
  129.  
  130.     // v scroller
  131.     
  132.     NX_HEIGHT(&vScrollRect) = NX_HEIGHT(&vScrollRect) - 
  133.                     (NX_HEIGHT(&ooeButtonRect));
  134.     NX_Y(&vScrollRect) = NX_MAXY(&ooeButtonRect);
  135.     [vScroller setFrame:&vScrollRect];
  136.  
  137.     return self;
  138. }
  139. */
  140.  
  141. @end
  142.  
  143.